package com.flyco.modules.stm.entity;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.flyco.common.aspect.annotation.Dict;
import lombok.Data;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.format.annotation.DateTimeFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

/**
 * @Description: 经销商折扣表
 * @Author: flyco
 * @Date: 2024-04-11
 * @Version: V1.0
 */
@Data
@TableName("stm_dealer_discount")
@ApiModel(value = "stm_dealer_discount对象", description = "经销商折扣表")
public class StmDealerDiscount implements Serializable {
    private static final long serialVersionUID = 1L;

    /**
     * id
     */
    @TableId(type = IdType.AUTO)
    @ApiModelProperty(value = "id")
    private Long id;
    /**
     * 经销商编码
     */
    @ApiModelProperty(value = "经销商编码")
    private String storeId;
    /**
     * 经销商名称
     */
    @TableField(exist = false)
    @ApiModelProperty(value = "经销商编码")
    private String storeName;
    /**
     * 组织编码
     */
    @ApiModelProperty(value = "组织编码")
    private String companyCode;
    /**
     * 渠道编码
     */
    @ApiModelProperty(value = "渠道编码")
    private String channelCode;

    @ApiModelProperty(value = "渠道名称")
    @TableField(exist = false)
    private String channelName;

    /**
     * 货物优惠金额
     */
    @ApiModelProperty(value = "货物优惠金额")
    private java.math.BigDecimal productAmount;
    /**
     * 货物优惠余额
     */
    @ApiModelProperty(value = "货物优惠余额")
    private java.math.BigDecimal productRemainAmount;
    /**
     * 促销费用金额
     */
    @ApiModelProperty(value = "促销费用金额")
    private java.math.BigDecimal promotionAmount;
    /**
     * 促销费用余额
     */
    @ApiModelProperty(value = "促销费用余额")
    private java.math.BigDecimal promotionRemainAmount;
    /**
     * 任务达成金额
     */
    @ApiModelProperty(value = "任务达成金额")
    private java.math.BigDecimal missionAmount;
    /**
     * 任务达成余额
     */
    @ApiModelProperty(value = "任务达成余额")
    private java.math.BigDecimal missionRemainAmount;
    /**
     * 调价补差金额
     */
    @ApiModelProperty(value = "调价补差金额")
    private java.math.BigDecimal adjustAmount;
    /**
     * 调价补差余额
     */
    @ApiModelProperty(value = "调价补差余额")
    private java.math.BigDecimal adjustRemainAmount;
    /**
     * 审核状态（0.待审核 1.审核通过 2.退回）
     */
    @ApiModelProperty(value = "审核状态（0.待审核 1.审核通过 2.退回）")
    @Dict(dicCode = "discountApproveStatus")
    private Integer auditStatus;
    /**
     * 审核人
     */
    @ApiModelProperty(value = "审核人")
    private String auditBy;
    /**
     * 开始时间
     */
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "开始时间")
    private Date startTime;
    /**
     * 结束时间
     */
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "结束时间")
    private Date endTime;
    /**
     * 审核时间
     */
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "审核时间")
    private Date auditTime;
    /**
     * 创建人
     */
    @ApiModelProperty(value = "创建人")
    private String createBy;
    /**
     * 创建时间
     */
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "创建时间")
    private Date createTime;
    /**
     * 修改人
     */
    @ApiModelProperty(value = "修改人")
    private String updateBy;
    /**
     * 修改时间
     */
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "修改时间")
    private Date updateTime;

    @ApiModelProperty(value = "审核备注")
    private String note;

    @TableField(exist = false)
    private BigDecimal balance;

    @TableField(exist = false)
    private String saleRealName;
}
